<?php

namespace App\Common\Traits;

use App\Common\Utils\RsaUtils;

/**
 * 非对称加密类用户参数加密
 * @author Jinfeihu
 * 
 */
trait RsaTrait {

    public function encryptionConfig() {
        return env('ENCRYPTION_CONFIG');
    }

    /**
     * 公钥加密
     * 
     */
    public function publicEncryption($param) {
        if ($this->encryptionConfig()) {
            return RsaUtils::publicEncrypt($param);
        }
        return $param;
    }

    /**
     * 公钥解密
     */
    public function publicDecrypt($param) {
        if ($this->encryptionConfig()) {
            return RsaUtils::publicDecrypt($param);
        }
        return $param;
    }

    /**
     * 私钥加密
     * 
     */
    public function privateEncryption($param) {
        if ($this->encryptionConfig()) {
            return RsaUtils::privEncrypt($param);
        }
        return $param;
    }

    /**
     * 私钥解密
     * 
     */
    public function privateDecrypt($param) {
        if ($this->encryptionConfig()) {
            return RsaUtils::privDecrypt($param);
        }
        return $param;
    }

}
